home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Standards 1994 January / InfoMagic Standards - January 1994.iso / misc / merit / noop / papers / citycode next >
Text File  |  1992-03-05  |  16KB  |  297 lines

  1.  
  2.  
  3.                   City Codes: An Alternative Scheme for
  4.                    OSI NSAP Allocation in the Internet
  5.  
  6.  
  7.                              Stephen Deering
  8.                      Xerox Palo Alto Research Center
  9.                              January 7, 1992
  10.  
  11.  
  12.  
  13.          INCOMPLETE, WORKING DRAFT -- PLEASE DO NOT REDISTRIBUTE.
  14.  
  15.        [Author's notes to himself are enclosed in square brackets.]
  16.  
  17.  
  18.  
  19. 1  Introduction
  20.  
  21. We propose a scheme for allocating OSI NSAP addresses (``NSAPs'', for 
  22. short) for use in the Internet, as an alternative to the scheme recommended 
  23. in RFC-1237 [Colella et al.].  The essence of our scheme is that the NSAPs 
  24. allocated to a particular ``leaf'' routing domain, such as a campus, a 
  25. corporate site, or a personal residence, have a prefix which identifies the 
  26. country and city in or near which the leaf domain attaches to a transit 
  27. routing domain, such as a regional or wide-area network.  Such NSAPs are 
  28. similar to plain old telephone numbers, which start with country and city 
  29. codes (or ``area codes'' in North America; we forgo the ``area'' 
  30. terminology to avoid confusion with the previous use of that word in OSI 
  31. routing protocols).  Unlike the current practice in the telephone system, 
  32. however, we allow more than one ``carrier'' to offer transit delivery 
  33. service into, out of, and within the geographic scope of a single city 
  34. code.  NSAPs based on city codes identify where leaf domains obtain their 
  35. transit service; they do not identify the carriers providing the service.
  36.  
  37. The city code scheme achieves the same goal as RFC-1237: it eliminates the 
  38. need for wide-area routing domains, such as national and international 
  39. backbones, to maintain and distribute routing information about large 
  40. numbers of leaf domains.  Wide-area routing is based simply on country and 
  41. city codes.
  42.  
  43. The main advantage of the city code scheme over RFC-1237 is that a leaf 
  44. domain may be switched from one transit provider to another, or may be 
  45. attached to a transit provider for the first time, without changing its 
  46. NSAPs---provided that the new attachment point is within the geographic 
  47. scope of the same city code.  This is not true of the RFC-1237 scheme, 
  48. since it requires that most leaf domains acquire their NSAPs out of a block 
  49. belonging to currently-attached transit provider.  Thus, using city codes, 
  50. a leaf domain is not ``locked-in'' to its current transit provider; it can 
  51. be switched to whichever provider offers the most desirable service without 
  52. the burden of reconfiguring all internal hosts and routers (only part of 
  53. which might yield to automated procedures) and without a lengthy transition 
  54. period during which two providers may have to be paid.  City codes also 
  55. handle some ``multi-homed'' leaf domains, that is, leaf domains attached to 
  56. more than one public transit service, more gracefully than the RFC-1237 
  57. approach.
  58.  
  59.  
  60. 2  Proposed NSAP Structure
  61.  
  62. We propose that NSAPs for a leaf domain be structured as follows:
  63.  
  64.         <country-code> <city-code> <domain-id> <intra-domain-part>
  65.  
  66. where:
  67.  
  68.   <country-code> is a numeric code identifying the country in which the 
  69. leaf domain attaches to a transit service.  It is not strictly necessary 
  70. that country codes be one-to-one with countries.  A single code may 
  71. identify a contiguous set of countries (perhaps arising from the break-up 
  72. of a larger country, like the U.S.S.R. or Canada).  A single country may 
  73. also have more than one country code (perhaps arising from the merger of 
  74. several independent countries, like East and West Germany, or the wider 
  75. European Community).  And a country code may be assigned to a non-country, 
  76. like Antarctica or the Moon.
  77.  
  78.   <city-code> is a numeric code identifying the geographical region within 
  79. a country, typically centered on a major metropolitan area (unless it 
  80. happens to be Antarctica or the Moon!), in which the leaf domain attaches 
  81. to a transit service.  A country would not be expected to have more than a 
  82. couple hundred city codes.  Unlike telephone area codes, a single large 
  83. city would not be partitioned into multiple, non-overlapping city codes, 
  84. although it would be permissible for two city codes to overlap, 
  85. geographically.
  86.  
  87.   <domain-id> is a numeric code identifying the particular leaf domain 
  88. within the city of the attachment point.  Every leaf domain in a city has a 
  89. unique domain ID, independent of the transit provider.  Strategies for 
  90. allocating domain IDs are discussed below.
  91.  
  92.   <intra-domain-part> is the part of the NSAP upon which the leaf domain 
  93. performs its internal routing.  In the case of a leaf domain using DIS10589 
  94. (the IS-IS intra-domain routing protocol), the intra-domain part would 
  95. consist of the Area ID, System ID, and NSAP Selector subfields.
  96.  
  97. There are a variety of ways of encoding this structure within an NSAP. A 
  98. simple encoding scheme, similar to the ANSI proposal described in RFC-1237, 
  99. would be as follows:
  100.  
  101.     1 octet AFI = 39
  102.     2 octet Country Code  (ISO DCC)
  103.     1 octet DFI = 2       (to identify this particular format)
  104.     1 octet Reserved      (for possible growth of the city code field)
  105.     1 octet City Code     (allows up to 256 cities per country)
  106.     2 octet Reserved      (for possible growth of the domain ID field)
  107.     3 octet Domain ID     (allows up to 16 million leaf domains per city)
  108.     2 octet Area ID
  109.     6 octet System ID
  110.     1 octet NSAP Selector
  111.    --
  112.    20 octets total
  113.  
  114. [I wonder if there any possibility of shoehorning a version of this scheme, 
  115. with more carefully-crafted subfields, into the IP Class A address space, 
  116. to extend the useful life of IP?]
  117.  
  118.  
  119. 3  Routing through Transit Domains
  120.  
  121. We first consider the case of ``public'' transit routing domains that offer 
  122. to deliver packets anywhere in the ``global internet''.  Such routing 
  123. domains do not themselves reach everywhere---they may span only a single 
  124. metropolitan area or multiple cities, in one country or in multiple 
  125. countries---but through bilateral and multilateral agreements with other 
  126. transit domains (such as national and international backbones and various 
  127. regional and metropolitan networks), they are able to offer universal 
  128. delivery service.  It is this set of interconnected, public transit domains 
  129. that may be said to define the ``global internet''.
  130.  
  131. Under the city code scheme, each router in such a transit domain must 
  132. maintain routing table entries to enable it to reach any city in the global 
  133. internet.  Those entries may consist of interior routes to cities or 
  134. countries directly reachable within the domain, obtained through the 
  135. operation of a conventional intra-domain routing protocol, and exterior 
  136. routes to specific cities, to specific countries (with the city 
  137. unspecified), and to ``default'' countries, injected at the domain's 
  138. boundary routers by static configuration or an inter-domain routing 
  139. protocol.
  140.  
  141. The number of such inter-city route entries in any one router is expected 
  142. to be manageably small.  For a single-city regional, it may be just a 
  143. single ``default'' entry, pointing to a wide-area backbone.  For a larger 
  144. regional, there will be entries for each of the cities served by that 
  145. regional, plus zero or more country routes, plus a default.  National 
  146. backbones will probably have routes to all cities within one country, and 
  147. international backbones will probably have routes to all countries.  If by 
  148. nothing else, the number of such entries is bounded by the total number of 
  149. cities in the world.  [I wonder how many there are?]
  150.  
  151. A packet is routed towards its destination city via the inter-city route 
  152. entries, using the conventional ``longest-match'' algorithm to choose a 
  153. city-specific route over a country-only route.  Once the packet reaches a 
  154. router in the destination city, further routing is done using the domain ID 
  155. field.    The router at which the packet arrives in the destination city 
  156. may or may not belong to a transit domain that is directly serving the 
  157. destination leaf domain.  If it does, it will have a internal route for the 
  158. given domain ID.  If it does not, the router must have some other 
  159. information that will allow it to forward the packet to a transit domain 
  160. that does directly serve the destination.
  161.  
  162. [Here's comes the interesting bit, at last.  Hope it makes sense.]
  163.  
  164. In order for a packet to get shuttled to the right transit domain in the 
  165. destination city, all of the domains serving a single city must be 
  166. connected to each other, either directly or indirectly (through some other 
  167. transit service), and they must exchange information about which transit 
  168. domains serve which leaf domains.  The simplest way to exchange that 
  169. information is simply to have each transit domain export all of its leaf 
  170. domain routes to all of the other transitdomains serving the same city; 
  171. that should suffice for cities with only a few hundred leaf domains.  
  172. However, we may expect the number of leaf domains in a city eventually to 
  173. grow into the millions (when, someday, every telephone is replaced by a 
  174. router).  For large numbers of leaf domains, more efficient information 
  175. exchange is possible: once a day, say, each transit domain could simply 
  176. send a list of all of the leaf domain IDs it serves to each of its 
  177. neighboring domains.  The routers would then concatenate the lists from all 
  178. of the domains, and use the resulting list as an indirection table for 
  179. routing packets within the city: the domain ID of a packet's destination 
  180. would first be looked up in the indirection table to find out who serves 
  181. that ID, and then the routing table would be consulted to determine how to 
  182. reach the serving domain.  If the memory cost of storing the indirection 
  183. table becomes prohibitive, it could reasonably be stored on disk, with only 
  184. the recently-referenced domain IDs being cached in memory.  (The once a day 
  185. exchange rate implies that it would take at most one day for a leaf domain 
  186. to start receiving service from a new transit domain.)
  187.  
  188. The storage required for the list of domain IDs could be further reduced by 
  189. imposing some sub-structure on domain IDs, assuming that most leaf domains 
  190. will not, in fact, ever switch from their initial transit domain to some 
  191. other transit domain.  If that should be the case, then it would be 
  192. reasonable to hand out blocks of domain IDs to each transit domain serving 
  193. a city, structured as follows:
  194.  
  195.                    <transit ID> <serial no>
  196.  
  197. where <transit id> identifies the transit domain within the city, and 
  198. <serial no> is simply incremented each time a new leaf domain ID is to be 
  199. assigned by that transit domain.  A leaf domain would obtain a domain ID of 
  200. that form from the first transit domain to which it connected.  If the leaf 
  201. domain later switched to another transit, it would still keep the same 
  202. domain ID, but it would report that ID to its new transit domain.  Then, 
  203. each transit domain would only have to inform its neighbors of these 
  204. ``exceptions'' (i.e., leaf domains whose domain ID's <transit ID> field did 
  205. not match their current transit provider), rather than complete lists of 
  206. all served leaf domains.
  207.  
  208. For ``semi-private'' transit domains, such as wide-area networks 
  209. constrained to serving a limited clientele, routing could be performed on 
  210. full <country-code><city-code><domain-id> prefixes, treating them as a flat 
  211. field.  Alternatively, a semi-private domain could take advantage of the 
  212. city code structure to achieve the same scalability benefits as the public 
  213. transit domains.  The only difference would be that, in the semi-private 
  214. case, if a packet arrives in its destination city and the router there does 
  215. not have an interior route to the destination leaf domain, the router would 
  216. simply drop the packet, it being addressed to an unauthorized destination.
  217.  
  218.  
  219. 4  Routing in Leaf Domains
  220.  
  221. Within a leaf domain, routing is normally performed using the NSAP fields 
  222. that follow the domain ID.  If a leaf domain attaches to more than one 
  223. transit domain in the same city, it need not obtain multiple NSAP 
  224. allocations; packets with the same destination NSAP may arrive via any of 
  225. the attached transit domains.  (The leaf domain may control which transit 
  226. domain it uses for outgoing traffic, based on the source and destination 
  227. addresses of the traffic, quality-of-service fields, time-of-day, or any 
  228. other information at hand, similar to the way modern office PBX systems 
  229. select carriers for off-site calls.  The choice of transit domain for 
  230. incoming traffic, however, is under the control of the source leaf domain 
  231. and all of the intermediate transit domains.  [Should I mention the 
  232. possibility of explicitly allocating multiple NSAP blocks with different 
  233. domain IDs for a multi-home domain, in order to control incoming traffic 
  234. via the addresses that are handed out to communicants?]).
  235.  
  236. A leaf domain may itself span multiple cities, or multiple countries.  An 
  237. example is a large private corporate internet interconnecting many branch 
  238. offices.  If such a domain attached to the ``public'' internet in only one 
  239. place, the NSAPs for all of the company's systems (or at least all systems 
  240. with external access privileges) would contain the city code for the 
  241. attachment point, regardless of where the systems themselves were located.  
  242. If the corporate domain were attached to the public internet in more than 
  243. one place, it would be reasonable for the systems inside the corporation to 
  244. take their NSAPs from their nearest point of attachment, as discussed in 
  245. RFC-1237.  This would mean the use of multiple NSAP prefixes (country, 
  246. city, and domain IDs) within the single corporate domain.  The intra-domain 
  247. routing protocol could be configured to know about the specific prefixes 
  248. belonging to the company, in order to keep intra-company traffic inside the 
  249. corporate internet.  The country and city structure of those NSAPs could be 
  250. exploited for their scalability benefits by the corporate routers.  
  251. Alternatively, the company could use an entirely separate NSAP address 
  252. space for its systems, in addition to the NSAPs obtained from any public 
  253. attachment points, similar to the way telephones in some large corporations 
  254. may be ``addressed'' by both a normal, public phone number, and a number 
  255. belonging to the corporation's own private phone system.  One advantage of 
  256. assigning both interior and exterior addresses to the company's systems 
  257. might to allow the exterior addresses and public connectivity to be used 
  258. for intra-company communication if the corporate internet should partition.
  259.  
  260.  
  261. 5  When NSAPs Change
  262.  
  263. Under the city code scheme, there are still occasions when it is necessary 
  264. for a leaf domain to change some or all of its NSAPs.  For example, if a 
  265. small company moves to a new city and attaches its routing domain there, 
  266. that domain will have to use new NSAPs.  However, such moves also entail 
  267. changes of phone numbers, fax numbers, postal addresses, etc., so the 
  268. change of NSAPs would not be unexpected or unreasonable.
  269.  
  270. If a company with a wide-area private internet adds a new attachment point 
  271. to the public internet, it is necessary to assign new NSAPs to some of the 
  272. company's systems if it is desired that those systems receive packets via 
  273. the new attachment point.  However, the new addresses may be introduced 
  274. gradually, and use of the old addresses may be allowed to continue for an 
  275. indefinite transition period.
  276.  
  277. Finally, if the country or city code of an attachment point should happen 
  278. to change, say, by annexation of the city by a hostile neighboring country, 
  279. leaf domain NSAPs would have to change.  That would probably be the least 
  280. of the worries.
  281.  
  282.  
  283. [Should add some discussion of ``800 numbers'', mobile hosts, and 
  284. multicast.  Nothing surprising.]
  285.  
  286.  
  287. References
  288.  
  289. [Colella et al.]  Colella R., Gardner E., and Callon, R.
  290.                   Guidelines for OSI NSAP Allocation in the Internet.
  291.                   RFC-1237, Network Working Group, July 1991.
  292.  
  293.  
  294. ------- End of Forwarded Message
  295.  
  296.  
  297.